Next: nnmaildir Group Parameters, Previous: MH Spool, Up: Choosing a Mail Back End [Contents][Index]
nnmaildir stores mail in the maildir format, with
each maildir corresponding to a group in Gnus. This format is
documented here: http://cr.yp.to/proto/maildir.html
and here: http://www.qmail.org/man/man5/maildir.html.
nnmaildir also stores extra information in the
.nnmaildir/ directory within a maildir.
Maildir format was designed to allow concurrent deliveries and
reading, without needing locks. With other back ends, you would
have your mail delivered to a spool of some kind, and then you
would configure Gnus to split mail from that spool into your
groups. You can still do that with nnmaildir, but
the more common configuration is to have your mail delivered
directly to the maildirs that appear as group in Gnus.
nnmaildir is designed to be perfectly reliable:
C-g will never corrupt its data in memory, and
SIGKILL will never corrupt its data in the
filesystem.
nnmaildir stores article marks and
NOV data in each maildir. So you can copy a
whole maildir from one Gnus setup to another, and you will keep
your marks.
Virtual server settings:
directoryFor each of your nnmaildir servers
(it’s very unlikely that you’d need more than
one), you need to create a directory and populate it with
maildirs or symlinks to maildirs (and nothing else; do not
choose a directory already used for other purposes). Each
maildir will be represented in Gnus as a newsgroup on that
server; the filename of the symlink will be the name of the
group. Any filenames in the directory starting with
‘.’ are ignored. The directory is
scanned when you first start Gnus, and each time you type
g in the group buffer; if any maildirs have been
removed or added, nnmaildir notices at these
times.
The value of the directory parameter should
be a Lisp form which is processed by eval and
expand-file-name to get the path of the
directory for this server. The form is evaled
only when the server is opened; the resulting string is used
until the server is closed. (If you don’t know about
forms and eval, don’t worry—a simple
string will work.) This parameter is not optional; you must
specify it. I don’t recommend using
"~/Mail" or a subdirectory of it; several other
parts of Gnus use that directory by default for various
things, and may get confused if nnmaildir uses
it too. "~/.nnmaildir" is a typical value.
target-prefixThis should be a Lisp form which is processed by
eval and expand-file-name. The form
is evaled only when the server is opened; the
resulting string is used until the server is closed.
When you create a group on an nnmaildir
server, the maildir is created with
target-prefix prepended to its name, and a
symlink pointing to that maildir is created, named with the
plain group name. So if directory is
"~/.nnmaildir" and target-prefix is
"../maildirs/", then when you create the group
foo, nnmaildir will create
~/.nnmaildir/../maildirs/foo as a maildir, and
will create ~/.nnmaildir/foo as a symlink
pointing to ../maildirs/foo.
You can set target-prefix to a string without
any slashes to create both maildirs and symlinks in the same
directory; in this case, any maildirs found in
directory whose names start with
target-prefix will not be listed as groups (but
the symlinks pointing to them will be).
As a special case, if target-prefix is
"" (the default), then when you create a group,
the maildir will be created in directory without
a corresponding symlink. Beware that you cannot use
gnus-group-delete-group on such groups without
the force argument.
directory-filesThis should be a function with the same interface as
directory-files (such as
directory-files itself). It is used to scan the
server’s directory for maildirs. This
parameter is optional; the default is
nnheader-directory-files-safe if
nnheader-directory-files-is-safe is
nil, and directory-files otherwise.
(nnheader-directory-files-is-safe is checked
only once when the server is opened; if you want to check it
each time the directory is scanned, you’ll have to
provide your own function that does that.)
get-new-mailIf non-nil, then after scanning for new mail
in the group maildirs themselves as usual, this server will
also incorporate mail the conventional Gnus way, from
mail-sources according to
nnmail-split-methods or
nnmail-split-fancy. The default value is
nil.
Do not use the same maildir both in
mail-sources and as an nnmaildir
group. The results might happen to be useful, but that would
be by chance, not by design, and the results might be
different in the future. If your split rules create new
groups, remember to supply a create-directory
server parameter.
Next: nnmaildir Group Parameters, Previous: MH Spool, Up: Choosing a Mail Back End [Contents][Index]